A window is a user interface object that establishes a correlation between a particular set of data and a particular screen region. Unless the window is hidden or covered by another user interface object, the set of data is typically displayed in the corresponding screen region. The use of windows has proven to be an effective way of communicating information to a computer user. For example, a word processing system that allows a user to open multiple documents may provide a separate window for displaying the contents of each of the open documents.
For added flexibility, many window management systems allow windows to overlap with each other. Two windows overlap when there is an intersection between the screen regions associated with the windows. If the contents of two or more overlapping windows are displayed in the common screen region, the information may appear garbled and difficult to read. Consequently, the window management system must determine what should be displayed in the region that is common to overlapping windows.
To address this problem raised by overlapping windows, most window management systems assign each window a position in a "stack order". When multiple windows share the same screen region, only the information from the window that has the higher position in the stack order is shown in the screen region. Thus, the portion of the lower-ordered window that corresponds to the common screen region will be "covered" by the portion of the higher-ordered window that corresponds to the common screen region. To a user, this makes the lower-ordered window appear as if it were physically below the higher-ordered window.
Most window management systems allow users to move, resize and change the stack order of individual windows. For example, in the System 7 operating system available from Apple Computer, Inc., a window assumes the highest position in the stack order when a user clicks on a portion of the window using an input device such as a mouse or trackball. A window is resized by dragging the bottom corner of the window until the window has the desired dimensions. A window is moved by dragging the title bar of the window to a new position on the screen display.
In some applications, it may be important to ensure that certain information is always visible to the user. However, if the information is displayed in a window in a system that allows windows to overlap, then the vital information may become hidden from the user. For example, the information may become covered if the user performs some action that would cause a window that is higher in the stack order to overlap with the given window. Numerous types of user actions can cause this situation to arise. For example, the user may cause an already-overlapping window to assume a position in the stack order that is higher than the position of the given window. Alternatively, the user may move a window that is already higher in the stack order to a screen position that overlaps with the given window.
Various attempts have been made to prevent important information displayed in a window from becoming hidden to the user. For example, PC Tools for Windows provides a window-based graphical desktop that allows a user to specify that a window should remain "always on top". The "always on top" window is assigned a position in the stack order that is higher than the highest position assigned to ordinary windows. Consequently, if any window is manipulated in such a way as to overlap with the "always on top" window, the overlapping portion of the "always on top" window will cover the other window in the common screen region.
This approach works well as long as there is only one window that contains crucial information. However, a problem arises when more than one "always on top" window is needed. In PC Tools for Windows, if two windows are designated as "always on top" windows, they behave the same with respect to each other as normal windows do with respect to each other. That is, one "always on top" window will have a higher stack order position than the other. When the two "always on top" windows are caused to overlap, the higher-ordered window will cover the lower-ordered window in the common screen region. The information contained in the covered portion of the lower-ordered window is no longer visible to the user. Thus, when more than one "always on top" window is displayed, there is no way to ensure that critical information will always be visible to the user.
One way to avoid this problem is to allow only one "always on top" window at a time. For example, French Patent Publication number 2,693,810 describes a window management system that provides one window that cannot be obscured by other windows. When a user designates a second window as a non-obscurable window, the first non-obscurable window ceases to be non-obscurable. Because this system does not support multiple non-obscurable windows, its utility is limited.
Based on the foregoing, it is clearly desirable to provide a windowing system that allows information to be simultaneously displayed in multiple always-visible windows. Further, it is desirable to provide an always-visible class of windows in a window management system that is consistent with the current X-Windows standards. In addition, it is desirable to provide a windows management system that allows users to combine window attributes including an always-visible attribute and a transparent background attribute.